#pragma once
#include <memory>
#include "source/output/OutputSource.h"
#include "frame_common.h"

namespace Media{
    typedef struct{
        int m_width;
        int m_height;
        int m_frameRate;
        int m_bitRate;
        std::string m_codec; //H264/H265
    }VideoScenesOutItemConfig;

    class VideoScenesOutItem{
    public:
        using Ptr = std::shared_ptr<VideoScenesOutItem>;
        VideoScenesOutItem(const VideoScenesOutItemConfig& config, OutputSource::OutputSourceId sourceId);
        ~VideoScenesOutItem();

        bool InputPacket(const FrameCommon::Frame::Ptr& frame);
        bool InputFrame(void* frame);

    private:
        VideoScenesOutItemConfig m_itemConfig;
        OutputSource::OutputSourceId m_sourceId;
    };

}